package com.bondex.charter.po;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;

import java.math.BigDecimal;
import java.util.Date;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CharterSi {
    private Integer id;

    @Schema(description = "委托号")
    private String orderNo;

    @Schema(description = "截单号（可能无用）")
    private String siNo;

    @Schema(description = "提单号")
    private String blNo;

    @Schema(description = "客户号")
    private String customerNo;

    @Schema(description = "船名代码")
    private String vesselNo;

    @Schema(description = "船名")
    private String vessel;

    @Schema(description = "航次")
    private String voyage;

	@Schema(description = "预计开航时间")
    private Date etd;

	@Schema(description = "实际开航时间")
	private Date atd;

	@Schema(description = "截单时间")
	private Date siCutOff;

	@Schema(description = "截港时间")
	private Date cyCutOff;

    @Schema(description = "收货地代码")
    private String placeOfReceiptCode;

    @Schema(description = "收货地名称")
    private String placeOfReceiptName;

    @Schema(description = "装货港代码")
    private String portOfLoadingCode;

    @Schema(description = "装货港名称")
    private String portOfLoadingName;

    @Schema(description = "中转港代码")
    private String portOfTransshipmentCode;

    @Schema(description = "中转港名称")
    private String portOfTransshipmentName;

    @Schema(description = "卸货港代码")
    private String portOfDischargeCode;

    @Schema(description = "卸货港名称")
    private String portOfDischargeName;

    @Schema(description = "目的港代码")
    private String placeOfDeliveryCode;

    @Schema(description = "目的港名称")
    private String placeOfDeliveryName;

    @Schema(description = "交货地代码")
    private String destinationCode;

    @Schema(description = "交货地名称")
    private String destinationName;

    @Schema(description = "件数")
    private Long noOfPackage;

    @Schema(description = "包装方式代码")
    private String packageTypeCode;

    @Schema(description = "包装方式名称")
    private String packageTypeName;

    @Schema(description = "毛重")
    private BigDecimal grossWeight;

    @Schema(description = "毛重单位 KGS")
    private String grossWeightUnit;

    @Schema(description = "体积")
    private BigDecimal volume;

    @Schema(description = "体积单位 CBM")
    private String volumeUnit;

	@Schema(description = "HS CODE")
	private String hsCode;

    @Schema(description = "运输条款代码")
    private String deliveryTermCode;

    @Schema(description = "运输条款名称")
    private String deliveryTermName;

    @Schema(description = "付款方式代码")
    private String paymentMethodCode;

    @Schema(description = "付款方式名称")
    private String paymentMethodName;

    @Schema(description = "付款地代码")
    private String placeOfPayCode;

    @Schema(description = "付款地名称")
    private String placeOfPayName;

    @Schema(description = "签单方式代码")
    private String documentTypeCode;

    @Schema(description = "签单方式名称")
    private String documentTypeName;

    @Schema(description = "签发地代码")
    private String blIssuePlaceCode;

    @Schema(description = "签发地名称")
    private String blIssuePlaceName;

    @Schema(description = "箱型箱量的总计描述")
    private String containerNoAndType;

    @Schema(description = "合计件数")
    private BigDecimal containerTotalPackageQty;

    @Schema(description = "合计重量")
    private BigDecimal containerTotalWeight;

    @Schema(description = "合计体积")
    private BigDecimal containerTotalVolume;

    @Schema(description = "集装箱明细信息")
    private Object containerInfo;

    @Schema(description = "扩展信息")
    private Object extendInfo;

	@Schema(description = "轻重货标志。 0 普货； 1 重货； 2 轻货")
	private Byte bulkyHeavyFlag;

	@Schema(description = "截单状态。 0 截单待确认； 1 已截单； 3 截单更改； 4 AMS已申报； 5 已签发")
	private String siStatus;

    @Schema(description = "AMS匹配。 0 AMS未匹配； 1 AMS已匹配")
    private Byte isAmsMatching;

	@Schema(description = "收费改单。 0 未收费改单； 1 收费改单")
	private Byte isAmendmentFeeCharging;

	@Schema(description = "SOC。 0 未SOC； 1 SOC")
	private Byte isSoc;

    @Schema(description = "创建时间")
    private Date createDate;

    @Schema(description = "创建人")
    private String createBy;

    @Schema(description = "更新时间")
    private Date modifyDate;

    @Schema(description = "更新人")
    private String modifyBy;

    @Schema(description = "版本")
    private String version;

    @Schema(description = "操作备注")
    private String opRemark;

    @Schema(description = "提单备注")
    private String billRemark;

    @Schema(description = "发货人")
    private String shipper;

    @Schema(description = "收货人")
    private String consignee;

    @Schema(description = "通知人")
    private String notify;

    @Schema(description = "唛头")
    private String marksNo;

    @Schema(description = "品名")
    private String description;

    @Schema(description = "是否废弃。 0 未废弃； 1 已经废弃")
    private Byte delFlg;

    public Byte getDelFlg() {
        return delFlg;
    }

    public void setDelFlg(Byte delFlg) {
        this.delFlg = delFlg;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo == null ? null : orderNo.trim();
    }

    public String getSiNo() {
        return siNo;
    }

    public void setSiNo(String siNo) {
        this.siNo = siNo == null ? null : siNo.trim();
    }

    public String getBlNo() {
        return blNo;
    }

    public void setBlNo(String blNo) {
        this.blNo = blNo == null ? null : blNo.trim();
    }

    public String getVesselNo() {
        return vesselNo;
    }

    public void setVesselNo(String vesselNo) {
        this.vesselNo = vesselNo == null ? null : vesselNo.trim();
    }

    public String getVessel() {
        return vessel;
    }

    public void setVessel(String vessel) {
        this.vessel = vessel == null ? null : vessel.trim();
    }

    public String getVoyage() {
        return voyage;
    }

    public void setVoyage(String voyage) {
        this.voyage = voyage == null ? null : voyage.trim();
    }

    public Date getEtd() {
        return etd;
    }

    public void setEtd(Date etd) {
        this.etd = etd;
    }

    public String getPlaceOfReceiptCode() {
        return placeOfReceiptCode;
    }

    public void setPlaceOfReceiptCode(String placeOfReceiptCode) {
        this.placeOfReceiptCode = placeOfReceiptCode == null ? null : placeOfReceiptCode.trim();
    }

    public String getPlaceOfReceiptName() {
        return placeOfReceiptName;
    }

    public void setPlaceOfReceiptName(String placeOfReceiptName) {
        this.placeOfReceiptName = placeOfReceiptName == null ? null : placeOfReceiptName.trim();
    }

    public String getPortOfLoadingCode() {
        return portOfLoadingCode;
    }

    public void setPortOfLoadingCode(String portOfLoadingCode) {
        this.portOfLoadingCode = portOfLoadingCode == null ? null : portOfLoadingCode.trim();
    }

    public String getPortOfLoadingName() {
        return portOfLoadingName;
    }

    public void setPortOfLoadingName(String portOfLoadingName) {
        this.portOfLoadingName = portOfLoadingName == null ? null : portOfLoadingName.trim();
    }

    public String getPortOfTransshipmentCode() {
        return portOfTransshipmentCode;
    }

    public void setPortOfTransshipmentCode(String portOfTransshipmentCode) {
        this.portOfTransshipmentCode = portOfTransshipmentCode == null ? null : portOfTransshipmentCode.trim();
    }

    public String getPortOfTransshipmentName() {
        return portOfTransshipmentName;
    }

    public void setPortOfTransshipmentName(String portOfTransshipmentName) {
        this.portOfTransshipmentName = portOfTransshipmentName == null ? null : portOfTransshipmentName.trim();
    }

    public String getPortOfDischargeCode() {
        return portOfDischargeCode;
    }

    public void setPortOfDischargeCode(String portOfDischargeCode) {
        this.portOfDischargeCode = portOfDischargeCode == null ? null : portOfDischargeCode.trim();
    }

    public String getPortOfDischargeName() {
        return portOfDischargeName;
    }

    public void setPortOfDischargeName(String portOfDischargeName) {
        this.portOfDischargeName = portOfDischargeName == null ? null : portOfDischargeName.trim();
    }

    public String getPlaceOfDeliveryCode() {
        return placeOfDeliveryCode;
    }

    public void setPlaceOfDeliveryCode(String placeOfDeliveryCode) {
        this.placeOfDeliveryCode = placeOfDeliveryCode == null ? null : placeOfDeliveryCode.trim();
    }

    public String getPlaceOfDeliveryName() {
        return placeOfDeliveryName;
    }

    public void setPlaceOfDeliveryName(String placeOfDeliveryName) {
        this.placeOfDeliveryName = placeOfDeliveryName == null ? null : placeOfDeliveryName.trim();
    }

    public String getDestinationCode() {
        return destinationCode;
    }

    public void setDestinationCode(String destinationCode) {
        this.destinationCode = destinationCode == null ? null : destinationCode.trim();
    }

    public String getDestinationName() {
        return destinationName;
    }

    public void setDestinationName(String destinationName) {
        this.destinationName = destinationName == null ? null : destinationName.trim();
    }

    public Long getNoOfPackage() {
        return noOfPackage;
    }

    public void setNoOfPackage(Long noOfPackage) {
        this.noOfPackage = noOfPackage;
    }

    public String getPackageTypeCode() {
        return packageTypeCode;
    }

    public void setPackageTypeCode(String packageTypeCode) {
        this.packageTypeCode = packageTypeCode == null ? null : packageTypeCode.trim();
    }

    public String getPackageTypeName() {
        return packageTypeName;
    }

    public void setPackageTypeName(String packageTypeName) {
        this.packageTypeName = packageTypeName == null ? null : packageTypeName.trim();
    }

    public BigDecimal getGrossWeight() {
        return grossWeight;
    }

    public void setGrossWeight(BigDecimal grossWeight) {
        this.grossWeight = grossWeight;
    }

    public String getGrossWeightUnit() {
        return grossWeightUnit;
    }

    public void setGrossWeightUnit(String grossWeightUnit) {
        this.grossWeightUnit = grossWeightUnit == null ? null : grossWeightUnit.trim();
    }

    public BigDecimal getVolume() {
        return volume;
    }

    public void setVolume(BigDecimal volume) {
        this.volume = volume;
    }

    public String getVolumeUnit() {
        return volumeUnit;
    }

    public void setVolumeUnit(String volumeUnit) {
        this.volumeUnit = volumeUnit == null ? null : volumeUnit.trim();
    }

    public String getDeliveryTermCode() {
        return deliveryTermCode;
    }

    public void setDeliveryTermCode(String deliveryTermCode) {
        this.deliveryTermCode = deliveryTermCode == null ? null : deliveryTermCode.trim();
    }

    public String getDeliveryTermName() {
        return deliveryTermName;
    }

    public void setDeliveryTermName(String deliveryTermName) {
        this.deliveryTermName = deliveryTermName == null ? null : deliveryTermName.trim();
    }

    public String getPaymentMethodCode() {
        return paymentMethodCode;
    }

    public void setPaymentMethodCode(String paymentMethodCode) {
        this.paymentMethodCode = paymentMethodCode == null ? null : paymentMethodCode.trim();
    }

    public String getPaymentMethodName() {
        return paymentMethodName;
    }

    public void setPaymentMethodName(String paymentMethodName) {
        this.paymentMethodName = paymentMethodName == null ? null : paymentMethodName.trim();
    }

    public String getPlaceOfPayCode() {
        return placeOfPayCode;
    }

    public void setPlaceOfPayCode(String placeOfPayCode) {
        this.placeOfPayCode = placeOfPayCode == null ? null : placeOfPayCode.trim();
    }

    public String getPlaceOfPayName() {
        return placeOfPayName;
    }

    public void setPlaceOfPayName(String placeOfPayName) {
        this.placeOfPayName = placeOfPayName == null ? null : placeOfPayName.trim();
    }

    public String getDocumentTypeCode() {
        return documentTypeCode;
    }

    public void setDocumentTypeCode(String documentTypeCode) {
        this.documentTypeCode = documentTypeCode == null ? null : documentTypeCode.trim();
    }

    public String getDocumentTypeName() {
        return documentTypeName;
    }

    public void setDocumentTypeName(String documentTypeName) {
        this.documentTypeName = documentTypeName == null ? null : documentTypeName.trim();
    }

    public String getBlIssuePlaceCode() {
        return blIssuePlaceCode;
    }

    public void setBlIssuePlaceCode(String blIssuePlaceCode) {
        this.blIssuePlaceCode = blIssuePlaceCode == null ? null : blIssuePlaceCode.trim();
    }

    public String getBlIssuePlaceName() {
        return blIssuePlaceName;
    }

    public void setBlIssuePlaceName(String blIssuePlaceName) {
        this.blIssuePlaceName = blIssuePlaceName == null ? null : blIssuePlaceName.trim();
    }

    public String getContainerNoAndType() {
        return containerNoAndType;
    }

    public void setContainerNoAndType(String containerNoAndType) {
        this.containerNoAndType = containerNoAndType == null ? null : containerNoAndType.trim();
    }

    public BigDecimal getContainerTotalPackageQty() {
        return containerTotalPackageQty;
    }

    public void setContainerTotalPackageQty(BigDecimal containerTotalPackageQty) {
        this.containerTotalPackageQty = containerTotalPackageQty;
    }

    public BigDecimal getContainerTotalWeight() {
        return containerTotalWeight;
    }

    public void setContainerTotalWeight(BigDecimal containerTotalWeight) {
        this.containerTotalWeight = containerTotalWeight;
    }

    public BigDecimal getContainerTotalVolume() {
        return containerTotalVolume;
    }

    public void setContainerTotalVolume(BigDecimal containerTotalVolume) {
        this.containerTotalVolume = containerTotalVolume;
    }

    public Object getContainerInfo() {
        return containerInfo;
    }

    public void setContainerInfo(Object containerInfo) {
        this.containerInfo = containerInfo;
    }

    public Object getExtendInfo() {
        return extendInfo;
    }

    public void setExtendInfo(Object extendInfo) {
        this.extendInfo = extendInfo;
    }

    public String getSiStatus() {
        return siStatus;
    }

    public void setSiStatus(String siStatus) {
        this.siStatus = siStatus == null ? null : siStatus.trim();
    }

    public Byte getIsAmsMatching() {
        return isAmsMatching;
    }

    public void setIsAmsMatching(Byte isAmsMatching) {
        this.isAmsMatching = isAmsMatching;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy == null ? null : createBy.trim();
    }

    public Date getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(Date modifyDate) {
        this.modifyDate = modifyDate;
    }

    public String getModifyBy() {
        return modifyBy;
    }

    public void setModifyBy(String modifyBy) {
        this.modifyBy = modifyBy == null ? null : modifyBy.trim();
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version == null ? null : version.trim();
    }

    public String getOpRemark() {
        return opRemark;
    }

    public void setOpRemark(String opRemark) {
        this.opRemark = opRemark == null ? null : opRemark.trim();
    }

    public String getBillRemark() {
        return billRemark;
    }

    public void setBillRemark(String billRemark) {
        this.billRemark = billRemark == null ? null : billRemark.trim();
    }

    public String getShipper() {
        return shipper;
    }

    public void setShipper(String shipper) {
        this.shipper = shipper == null ? null : shipper.trim();
    }

    public String getConsignee() {
        return consignee;
    }

    public void setConsignee(String consignee) {
        this.consignee = consignee == null ? null : consignee.trim();
    }

    public String getNotify() {
        return notify;
    }

    public void setNotify(String notify) {
        this.notify = notify == null ? null : notify.trim();
    }

    public String getMarksNo() {
        return marksNo;
    }

    public void setMarksNo(String marksNo) {
        this.marksNo = marksNo == null ? null : marksNo.trim();
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description == null ? null : description.trim();
    }

    public String getCustomerNo() {
        return customerNo;
    }

    public void setCustomerNo(String customerNo) {
        this.customerNo = customerNo;
    }

	public Date getAtd() {
		return atd;
	}

	public void setAtd(Date atd) {
		this.atd = atd;
	}

	public Date getSiCutOff() {
		return siCutOff;
	}

	public void setSiCutOff(Date siCutOff) {
		this.siCutOff = siCutOff;
	}

	public Date getCyCutOff() {
		return cyCutOff;
	}

	public void setCyCutOff(Date cyCutOff) {
		this.cyCutOff = cyCutOff;
	}

	public String getHsCode() {
		return hsCode;
	}

	public void setHsCode(String hsCode) {
		this.hsCode = hsCode;
	}

	public Byte getBulkyHeavyFlag() {
		return bulkyHeavyFlag;
	}

	public void setBulkyHeavyFlag(Byte bulkyHeavyFlag) {
		this.bulkyHeavyFlag = bulkyHeavyFlag;
	}

	public Byte getIsAmendmentFeeCharging() {
		return isAmendmentFeeCharging;
	}

	public void setIsAmendmentFeeCharging(Byte isAmendmentFeeCharging) {
		this.isAmendmentFeeCharging = isAmendmentFeeCharging;
	}

	public Byte getIsSoc() {
		return isSoc;
	}

	public void setIsSoc(Byte isSoc) {
		this.isSoc = isSoc;
	}
}